今日學習內容
錯誤類型
錯誤操作
捕獲錯誤
自訂義異常
說明
當執行程式碼錯誤的時候,要如何看懂哪裡錯誤,以及編輯器編譯失敗時顯示的結果,該如何解決。
錯誤有兩種類型,一種是Exception類,另一種是Error類。
Exception類
可以安全處理的錯誤,像是格式錯誤、超時錯誤等這些都可以攔截處理的。
Error類
指系統內發生錯誤,無法恢復,導致崩潰的情形。
再來是操作錯誤,使用throw拋出。
void main(List <String> args){
throw FormatException("這是一個格式錯誤");
}
常見的捕獲錯誤是使用try catch。
void main(List <String> args){
try{
throw OutOfMemoryError();
}
catch(e){
print(e);
}
finally{
print("happy");
}
}
這裡示範內存溢出的Error,我們會捕獲(catch)錯誤訊息Out of Memory然後print出來,finally是指無論如何最後都要執行的結果,就是print出happy的文字。
最後是自訂義錯誤
我們必須自己寫出一個錯誤,然後在main呼叫。
以下範例:
這裡是以DioError自訂一個錯誤。
class DioError implements Exception{
DioError(this.message,this.type);
final String message;
final String type;
@override
String toString(){
return 'DioError{'message','type'};
}
}
main裡面拋出DioError並呼叫它。
void main(List <String> args){
throw DioError('error1', 'type1');
}
錯誤訊息:DioError (DioError{message:error1,type:type1})
學習總結
今天學錯誤處理這塊是因為當我們在寫程式時,或多或少都會有出錯的時候,但是有些是程式可執行,但是是電腦系統本身的問題,有可能是記憶體不夠裝之類的問題,通常在Debug時也不太會發現,所以學習這個也是要讓自己發現它並知道是什麼意思,才不會程式app建構完成後,才發現系統有問題。